{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 9.3.3 An Application to Heart Disease Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA\n",
    "from sklearn.svm import SVC\n",
    "from sklearn.metrics import roc_curve,roc_auc_score\n",
    "\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(303, 14)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Age</th>\n",
       "      <th>Sex</th>\n",
       "      <th>ChestPain</th>\n",
       "      <th>RestBP</th>\n",
       "      <th>Chol</th>\n",
       "      <th>Fbs</th>\n",
       "      <th>RestECG</th>\n",
       "      <th>MaxHR</th>\n",
       "      <th>ExAng</th>\n",
       "      <th>Oldpeak</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Ca</th>\n",
       "      <th>Thal</th>\n",
       "      <th>AHD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>63</td>\n",
       "      <td>1</td>\n",
       "      <td>typical</td>\n",
       "      <td>145</td>\n",
       "      <td>233</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>150</td>\n",
       "      <td>0</td>\n",
       "      <td>2.3</td>\n",
       "      <td>3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>fixed</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>67</td>\n",
       "      <td>1</td>\n",
       "      <td>asymptomatic</td>\n",
       "      <td>160</td>\n",
       "      <td>286</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>108</td>\n",
       "      <td>1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2</td>\n",
       "      <td>3.0</td>\n",
       "      <td>normal</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>67</td>\n",
       "      <td>1</td>\n",
       "      <td>asymptomatic</td>\n",
       "      <td>120</td>\n",
       "      <td>229</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>129</td>\n",
       "      <td>1</td>\n",
       "      <td>2.6</td>\n",
       "      <td>2</td>\n",
       "      <td>2.0</td>\n",
       "      <td>reversable</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>37</td>\n",
       "      <td>1</td>\n",
       "      <td>nonanginal</td>\n",
       "      <td>130</td>\n",
       "      <td>250</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>187</td>\n",
       "      <td>0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>normal</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>41</td>\n",
       "      <td>0</td>\n",
       "      <td>nontypical</td>\n",
       "      <td>130</td>\n",
       "      <td>204</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>172</td>\n",
       "      <td>0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>normal</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Age  Sex     ChestPain  RestBP  Chol  Fbs  RestECG  MaxHR  ExAng  Oldpeak  \\\n",
       "1   63    1       typical     145   233    1        2    150      0      2.3   \n",
       "2   67    1  asymptomatic     160   286    0        2    108      1      1.5   \n",
       "3   67    1  asymptomatic     120   229    0        2    129      1      2.6   \n",
       "4   37    1    nonanginal     130   250    0        0    187      0      3.5   \n",
       "5   41    0    nontypical     130   204    0        2    172      0      1.4   \n",
       "\n",
       "   Slope   Ca        Thal  AHD  \n",
       "1      3  0.0       fixed   No  \n",
       "2      2  3.0      normal  Yes  \n",
       "3      2  2.0  reversable  Yes  \n",
       "4      3  0.0      normal   No  \n",
       "5      1  0.0      normal   No  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_csv(r'E:\\programming\\dataset\\Into_to_statstical_learning\\Heart.csv',index_col=0)\n",
    "print(data.shape)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Before proceding further, i would request you go take a look at the dataset, go through the columns, what does they represent, you may this this - http://search.r-project.org/library/kmed/html/heart.html\n",
    "(PS. I literally googled the types of chest pain to know more about them,LOL)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Check for null values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Age          0\n",
       "Sex          0\n",
       "ChestPain    0\n",
       "RestBP       0\n",
       "Chol         0\n",
       "Fbs          0\n",
       "RestECG      0\n",
       "MaxHR        0\n",
       "ExAng        0\n",
       "Oldpeak      0\n",
       "Slope        0\n",
       "Ca           4\n",
       "Thal         2\n",
       "AHD          0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "#remove the null values\n",
    "data.dropna(inplace = True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Enocide the categorical variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['ChestPain', 'Thal', 'AHD']"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cat_cols = [col for col in data.columns if data[col].dtype == 'O']\n",
    "cat_cols"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ChestPain\n",
      "['typical' 'asymptomatic' 'nonanginal' 'nontypical']\n",
      "\n",
      "Thal\n",
      "['fixed' 'normal' 'reversable']\n",
      "\n",
      "AHD\n",
      "['No' 'Yes']\n",
      "\n"
     ]
    }
   ],
   "source": [
    "for col in cat_cols:\n",
    "    print(col)\n",
    "    print(data[col].unique())\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "data['ChestPain'] = data['ChestPain'].map({'typical':1, 'asymptomatic':2, 'nonanginal':3, 'nontypical':4})\n",
    "data['Thal'] = data['Thal'].map({'fixed':1, 'normal':2, 'reversable':3})\n",
    "data['AHD'] = data['AHD'].map({'Yes':1,'No':0})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Age</th>\n",
       "      <th>Sex</th>\n",
       "      <th>ChestPain</th>\n",
       "      <th>RestBP</th>\n",
       "      <th>Chol</th>\n",
       "      <th>Fbs</th>\n",
       "      <th>RestECG</th>\n",
       "      <th>MaxHR</th>\n",
       "      <th>ExAng</th>\n",
       "      <th>Oldpeak</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Ca</th>\n",
       "      <th>Thal</th>\n",
       "      <th>AHD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>63</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>145</td>\n",
       "      <td>233</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>150</td>\n",
       "      <td>0</td>\n",
       "      <td>2.3</td>\n",
       "      <td>3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>67</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>160</td>\n",
       "      <td>286</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>108</td>\n",
       "      <td>1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>2</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>67</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>120</td>\n",
       "      <td>229</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>129</td>\n",
       "      <td>1</td>\n",
       "      <td>2.6</td>\n",
       "      <td>2</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>37</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>130</td>\n",
       "      <td>250</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>187</td>\n",
       "      <td>0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>3</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>41</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>130</td>\n",
       "      <td>204</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>172</td>\n",
       "      <td>0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Age  Sex  ChestPain  RestBP  Chol  Fbs  RestECG  MaxHR  ExAng  Oldpeak  \\\n",
       "1   63    1          1     145   233    1        2    150      0      2.3   \n",
       "2   67    1          2     160   286    0        2    108      1      1.5   \n",
       "3   67    1          2     120   229    0        2    129      1      2.6   \n",
       "4   37    1          3     130   250    0        0    187      0      3.5   \n",
       "5   41    0          4     130   204    0        2    172      0      1.4   \n",
       "\n",
       "   Slope   Ca  Thal  AHD  \n",
       "1      3  0.0     1    0  \n",
       "2      2  3.0     2    1  \n",
       "3      2  2.0     3    1  \n",
       "4      3  0.0     2    0  \n",
       "5      1  0.0     2    0  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dividing into train and test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(207, 13) (90, 13)\n"
     ]
    }
   ],
   "source": [
    "X_train,X_test,y_train,y_test = train_test_split(data.drop('AHD',axis=1),data['AHD'],test_size = 0.3,random_state = 0)\n",
    "print(X_train.shape,X_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## LDA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "lda = LDA()\n",
    "lda.fit(X_train,y_train)\n",
    "\n",
    "lda_probs = lda.predict_proba(X_test)[:,1]\n",
    "fpr_lda, tpr_lda, _ = roc_curve(y_test, lda_probs)\n",
    "auc_lda = roc_auc_score(y_test, lda_probs)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Support Vector Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Lenovo\\Anaconda3\\lib\\site-packages\\sklearn\\svm\\base.py:193: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n",
      "  \"avoid this warning.\", FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "# from book : \n",
    "# svc is eqvivalen to svm with a polynomial kerenel, and degree = 1\n",
    "svc = SVC(kernel='poly',degree = 1,probability=True) #probability = True as we want the predicted probs\n",
    "                                                     # which will be used to calculate fpr,tpr\n",
    "svc.fit(X_train,y_train)\n",
    "\n",
    "svc_probs = svc.predict_proba(X_test)[:,1]\n",
    "fpr_svc, tpr_svc, _ = roc_curve(y_test, svc_probs)\n",
    "auc_svc = roc_auc_score(y_test, svc_probs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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fjw7d+7kfe97H2eccQa1tbW9rn/xxRczd+5c7r33Xrq6umhpaQHg2GOPZdu2bXut/8Mf/pD58+fz7rvvst9++wGw3377sWHDhr3WnTNnDscddxz77bcf7s7nP/95pk2bBsBNN93EjBkzGDNmDFOnTuXGG28c9DEnUxD0o6srhEBXl0JAJE6JfnII3UJnn302AGeffTa33377kILg+uuv59577wVg7dq1vPHGG30GwaOPPspPf/pTAEpKSqiOZpb8zW9+M+gaEtasWcPq1atZt24dACeeeCJPPPEEc+bM4aabbuLFF1/kkEMO4Qtf+ALf+973+MY3vjHk11QQ9CE5BGproaws7opEsidTn9yz5cUXX2T27Nl0dXVxzz33sGzZMq6++updY+e3bdtGVdLcLvfeey/f+c53ALj55puZPXt2yv0uX76cRx55hKeffprRo0czb968XV1NySNw0ul+6q9FsO+++7J+/Xr2228/1q9fzz777LPXuvfeey/HHHPMrm6pk08+mRUrVlAR9UdPmTIFgE9/+tMpzzEMhs4R9KKrCzZtUgiIDAf33HMPDz30EAsXLuSRRx5h1qxZrF27ljfffJO33nqLM844Y6/+9tNPP52GhgYaGhp6DQGApqYmxo0bx+jRo3nttddYsWLFruf23XdfVq9eTXd3964WA8AJJ5zATTfdBEBXVxfNzc1AaBEkXjP5Nn/+fABOPfVUbrvtNgBuu+02TjvttL3qOeigg3adHO7o6ODxxx9n2rRpHHDAAaxatWrXCfOHH354V5fRUCkIUkiEgLtCQCTbduzYwcSJE3fdfvSjHwHw4x//eNfw0Z/97Gc8+uijTJgwgTvuuIPTTz99j32cccYZu04kD9SCBQvo7Oxk5syZfPOb3+SYY47Z9dw111zDKaecwvHHH7+rbx/guuuu47HHHmPGjBkcffTRvPrqq2m91uWXX87DDz/M1KlTefjhh7n88ssBWLlyJRdccAEAZ555JlOmTGHGjBm7TkZ//OMfZ//99+fb3/42H/nIR5g5cyYNDQ187WtfG9Qx92TJ/W75YPbs2b5y5coBb9dQMw+A+sblfa7X2Rm6gxIhMIDpOkTyzurVqzP2qVKGj1S/VzN73t1TNo10jiBJZ2doCYBCQESKh4Ig0tERWgIAdXVQqp+MiBQJvd2xOwTMQktAISAixaToTxYr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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (6,6))\n",
    "plt.plot(fpr_lda,tpr_lda,label=\"LDA -  auc=\"+str(auc_lda)[0:4],c = 'b')\n",
    "plt.plot(fpr_svc,tpr_svc,label=\"SVC -  auc=\"+str(auc_svc)[0:4],c = 'r')\n",
    "plt.plot([0,1],[0,1],alpha = 0.1,c = 'b')\n",
    "\n",
    "plt.legend(loc=4)\n",
    "plt.xlabel('False Positive Rate')\n",
    "plt.ylabel('True Positive Rate')\n",
    "plt.title('ROC curve for test data')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Support Vector Machine"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpr_list = []\n",
    "tpr_list = []\n",
    "for c in [1,10,20]:\n",
    "    svm = SVC(kernel='linear',probability=True,C=c)\n",
    "    svm.fit(X_train,y_train)\n",
    "    \n",
    "\n",
    "    svm_probs = svm.predict_proba(X_test)[::,1]\n",
    "    fpr, tpr, _ = roc_curve(y_test, svm_probs)\n",
    "    fpr_list.append(fpr)\n",
    "    tpr_list.append(tpr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x21ec75bc908>]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize = (6,6))\n",
    "plt.plot(fpr_list[0],tpr_list[0],label = 'SVM gamma = 10e-3')\n",
    "plt.plot(fpr_list[1],tpr_list[1],label = 'SVM gamma = 10e-2')\n",
    "plt.plot(fpr_list[2],tpr_list[2],label = 'SVM gamma = 10e-1')\n",
    "\n",
    "\n",
    "plt.plot([0,1],[0,1],alpha = 0.1,c = 'b')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
